The known algorithms for decoding the correcting codes from the family of turbo-codes exhibit limitations from the point of view of the post-decoding bit error rate performance at high signal-to-noise ratio. Indeed, it is known that beyond a threshold value of signal-to-noise ratio, the post-decoding bit error rate of a turbo-code cannot be improved with a standard decoding algorithm. This phenomenon is known by the term “error floor” which characterizes the minimum level of the bit error rate below which it is not possible to improve performance.
This phenomenon, well known in the field, is related to the fact that certain code words exhibit a minimum distance, that is to say a distance in relation to the closest code word, which is low. Now, the minimum distance has a direct impact on the code correcting power. If a code word received is at a distance of less than the minimum distance from the code word transmitted, then the decoder definitely converges to the right code word. On the contrary, the more significant the distance between the code word received and the code word transmitted, the more difficult the convergence of the decoder.
Several procedures are known for solving the problem of the error floor of the correcting codes from the family of turbo-codes.
A first solution consists in adding an outer code, for example a BCH code or a Reed-Solomon code to form a concatenated scheme. This technique makes it possible to improve the decoding performance by eliminating the error floor phenomenon but exhibits the defect of decreasing the spectral efficiency or the useful throughput of the transmission. Indeed, the overall rate of the two concatenated codes is less than the turbo-code rate alone.
A second solution, proposed in publication [1], consists in analysing the spectrum of the words of the code so as to identify the least protected bits in the frame of the code. Indeed it is known that in these codes, not all the bits are protected in an equitable manner. Therefore the impact of an error on a given bit is not the same as that of an error on the neighbouring bit. Once the set Ω of these bits has been determined, a turbo coder inserts known bits at the positions signified by the set Ω. Consequently, during decoding, the set Ω as well as the values of the inserted bits being known, significant reliability is declared on input to the turbo-decoder so as to improve the performance thereof. The inserted bits are thereafter removed on output from the turbo-decoder so as to retrieve the information frame.
This solution also presents the defect of decreasing the effective rate of the code since bits are added by the coder thereby decreasing the number of useful bits for a given information frame size.
A third solution, proposed in document [2] consists in introducing pulses at given positions in the frame. These positions are determined on the basis of the items of information regarding likelihood of the bits on input to the decoder. These items of information are sorted as a function of their magnitude solely and the pulses are introduced one by one, beginning with the least reliable likelihoods.
This solution has the defect of being very complex. Indeed, it appears to be effective solely for a large number of positions and relies on the principle that all the bits in the frame have the same significance, this not being true for a turbo-code.